// 图书管理路由器
const express = require('express')
const BookModel = require('../models/BookModel')

const router = express.Router()

// 图书列表的路由
router.get('/', async (req, res) => {
    try {
        // 通过数据库查找出所有的book列表
        const data = await BookModel.find()
        res.json({
            status: '3000',
            data: data,
            message: '获取列表成功'
        })
    } catch (error) {
        res.json({
            status: '3001',
            message: `获取列表失败，${error}`
        })
    }
})

// 添加
router.post('/', (req, res) => {
    const book1 = req.body
    BookModel.create(book1, (error, data) => {
        if (error) {
            res.json({
                status: '3001',
                message: `添加图书失败，${error}`
            })
        } else {
            console.log(data)
            res.json({
                status: '3000',
                data: data,
                message: '添加图书成功'
            })
        }
    })
})

// 删除
router.delete('/', (req, res) => {
    // 获取请求的参数
    const { id } = req.query
    // 根据id删除数据库中的数据
    BookModel.deleteOne({ _id: id }, (error, data) => {
        if (error) {
            res.json({
                status: '3001',
                message: '删除图书失败'
            })
        } else {
            res.json({
                status: '3000',
                data,
                message: '删除图书成功'
            })
        }
    })
})

// 获取一个图书的信息
router.get('/:id', (req, res) => {
    // 得到id参数
    const {id} = req.params
    // 根据id查询得到的book
    BookModel.findById(id, (error, data) => {
        if (error) {
            res.json({
                status: '3001',
                message: '查找单个图书失败'
            })
        } else {
            res.json({
                status: '3000',
                data,
                message: '查找单个图书成功'
            })
        }
    })
})


// 修改
router.put('/', (req, res) => {
    // 获取请求的参数，是输入框填写的东西形成的对象
    const book = req.body
    console.log(book)
    // 将参数添加到数据库
    BookModel.updateOne({ _id: book._id }, book, (error, data) => {
        if (error) {
            res.json({
                status: '3001',
                message: '修改图书失败'
            })
        } else {
            res.json({
                status: '3000',
                data,
                message: '修改图书成功'
            })
        }
    })
})


module.exports = router